package cn.iocoder.yudao.module.trade.api.record.dto;

import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum;
import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author zyc
 * @createDate 2024/6/14 11:28
 */

@Data
public class BrokerRecordDTO {

    private Integer id;
    /**
     * 用户编号
     * <p>
     * 关联 MemberUserDO.id
     */
    private Long userId;
    /**
     * 业务编号
     */
    private String bizId;
    /**
     * 业务类型
     * <p>
     * 枚举 {@link BrokerageRecordBizTypeEnum}
     */
    private Integer bizType;

    /**
     * 标题
     */
    private String title;
    /**
     * 说明
     */
    private String description;

    /**
     * 金额
     */
    private Integer price;
    /**
     * 当前总佣金
     */
    private Integer totalPrice;
    /**
     * 当前总金额(产生佣金的总金额)
     */
    private Integer totalAmount;
    /**
     * 状态
     * <p>
     * 枚举 {@link BrokerageRecordStatusEnum}
     */
    private Integer status;

    /**
     * 冻结时间（天）
     */
    private Integer frozenDays;
    /**
     * 解冻时间
     */
    private LocalDateTime unfreezeTime;

    /**
     * 来源用户等级
     * <p>
     * 被推广用户和 {@link #userId} 的推广层级关系
     */
    private Integer sourceUserLevel;
    /**
     * 来源用户编号
     * <p>
     * 关联 MemberUserDO.id 字段，被推广用户的编号
     */
    private Long sourceUserId;
    /**
     * 是否可被结算
     */
    private Integer canSettable;
    /**
     * 开通时间
     */
    private LocalDate startDate;
    /**
     * 结束时间
     */
    private LocalDate endDate;
    /**
     * 多租户编号
     */
    private Long tenantId;
}
